Compiler-Cooperative Memory Management in Java
نویسندگان
چکیده
Dynamic memory management is a known performance bottleneck of Java applications. The problem arises out of the Java memory model in which all objects (non-primitive type instances) are allocated on the heap and reclaimed by garbage collector when they are no longer needed. This paper presents a simple and fast algorithm for inference of object lifetimes. Given the analysis results, a Java compiler is able to generate faster code, reducing the performance overhead. Besides, the obtained information may be then used by garbage collector to perform more effective resource clean-up. Thus, we consider this technique as ”compile-time garbage collection” in Java.
منابع مشابه
USENIX Association Proceedings of the Java TM Virtual Machine Research
For the application of Java in realtime and safety critical domains, an analysis of the worst-case execution times of primitive Java operations is necessary. All primitive operations must either execute in constant time or have a reasonable upper bound for their execution time. The difficulties that arise for a Java virtual machine and a Java compiler in this context will be presented here. Thi...
متن کاملPorting the JMTk memory management toolkit
JMTk is a memory management toolkit written in Java, originally for the JikesRVM Java Virtual Machine. JMTk provides reusable components for the development of allocation and garbage collection algorithms, an efficient implementation of a rapidly growing number of memory management schemes, and is an important enabler for memory management research. A portable version of JMTk will allow the gro...
متن کاملCompiler-Assisted Memory Management Using Escape Analysis in the KESO JVM
Escape analysis can be used for automatic memory management in Java. Based on the work of Choi et al. in 2003 [CGS03], this thesis improves the existing escape analysis in KESO, a Java virtual machine for deeply embedded systems. Enhancements implemented for this document include flow-sensitive analysis, modifications that reduce compile time and a fix for a conceptual flaw in the work of Choi ...
متن کاملDeterministic Execution of Java's Primitive Bytecode Operations
For the application of Java in realtime and safety critical domains, an analysis of the worst-case execution times of primitive Java operations is necessary. All primitive operations must either execute in constant time or have a reasonable upper bound for their execution time. The difficulties that arise for a Java virtual machine and a Java compiler in this context will be presented here. Thi...
متن کاملJMTk: A Portable Memory Management Toolkit
JMTk is a memory management toolkit written in Java for the JikesRVM Java Virtual Machine. JMTk provides reusable components for the development of allocation and garbage collection algorithms, and an efficient implementation of a rapidly growing number of memory management schemes, and is a significant enabler for memory management research. A portable version of JMTk would allow the growing b...
متن کامل